-
Notifications
You must be signed in to change notification settings - Fork 375
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix dependency and subdir
in repoquery whoneeds
#3743
Conversation
Hind-M
commented
Jan 14, 2025
•
edited
Loading
edited
- Fix subdir in repoquery
- Fix repoquery whoneeds no longer lists package version dependency #3717
6d218d8
to
49c124f
Compare
subdir
in repoquerysubdir
in repoquery whoneeds
@@ -599,7 +592,7 @@ namespace mamba | |||
} | |||
|
|||
std::vector<mamba::printers::FormattedString> headers; | |||
std::vector<std::string_view> cmds, args; | |||
std::vector<std::string> cmds, args; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the bug as cmds
and args
were refering to sfmt after it was out of scope, and this was only appearing in osx and windows...
@@ -670,7 +663,7 @@ namespace mamba | |||
} | |||
else if (cmd == "Subdir") | |||
{ | |||
row.emplace_back(get_subdir(pkg.channel)); | |||
row.emplace_back(pkg.platform); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was not tested and was returning the channel conda-forge
instead of the subdir
.
micromamba/tests/test_repoquery.py
Outdated
res = helpers.umamba_repoquery("whoneeds", "-c", "conda-forge", spec, "--platform", "osx-64") | ||
assert "Name Version Build Depends Channel Subdir" in helpers.remove_whitespaces(res) | ||
if spec == "xtensor=0.24.5": # `Depends` column is empty here (bug?) | ||
assert "cascade 0.1.1 py38h5ce3968_0 conda-forge osx-64" in helpers.remove_whitespaces(res) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if the current behavior in this case (specifying the spec version) is the appropriate one (need to look into it more with maybe more context).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The first builds of cascade
(i.e. the ones of 0.1.1
) depend on xtensor
, but not on xtensor==0.24.5
, here is one of their index.json
:
{
"arch": "x86_64",
"build": "py310ha6c322b_0",
"build_number": 0,
"depends": [
"boost-cpp >=1.78.0,<1.79.0a0",
"fmt >=9.1.0,<10.0a0",
"hdf5 >=1.12.2,<1.12.3.0a0",
"heyoka >=0.21.0",
"heyoka >=0.21.0,<0.22.0a0",
"heyoka.py >=0.21.0",
"libcxx >=14.0.6",
"numpy",
"pybind11-abi 4",
"python >=3.10,<3.11.0a0",
"python_abi 3.10.* *_cp310",
"spdlog >=1.11.0,<1.12.0a0",
"tbb >=2021.8.0",
"xtensor",
"xtensor-blas"
],
"license": "MPL-2.0",
"name": "cascade",
"platform": "osx",
"subdir": "osx-64",
"timestamp": 1677367283346,
"version": "0.1.1"
}
Probably those builds of cascade
have been done against xtensor==0.24.5
.
I think xtensor
should be reported in this case, as it is the case with:
micromamba repoquery whoneeds xtensor -c conda-forge --platform osx-64 | grep cascade
cascade 0.1.1 py38h5ce3968_0 xtensor conda-forge conda-forge
cascade 0.1.1 py310ha6c322b_0 xtensor conda-forge conda-forge
cascade 0.1.1 py39hb1d9d96_0 xtensor conda-forge conda-forge
What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, after thinking about it, it seems redundant as we already know what Depends
should be set to (the spec already in the command), but let's do it this way to be consistent with the case where no constraints are given.
micromamba/tests/test_repoquery.py
Outdated
res = helpers.umamba_repoquery("whoneeds", "-c", "conda-forge", spec, "--platform", "osx-64") | ||
assert "Name Version Build Depends Channel Subdir" in helpers.remove_whitespaces(res) | ||
if spec == "xtensor=0.24.5": # `Depends` column is empty here (bug?) | ||
assert "cascade 0.1.1 py38h5ce3968_0 conda-forge osx-64" in helpers.remove_whitespaces(res) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The first builds of cascade
(i.e. the ones of 0.1.1
) depend on xtensor
, but not on xtensor==0.24.5
, here is one of their index.json
:
{
"arch": "x86_64",
"build": "py310ha6c322b_0",
"build_number": 0,
"depends": [
"boost-cpp >=1.78.0,<1.79.0a0",
"fmt >=9.1.0,<10.0a0",
"hdf5 >=1.12.2,<1.12.3.0a0",
"heyoka >=0.21.0",
"heyoka >=0.21.0,<0.22.0a0",
"heyoka.py >=0.21.0",
"libcxx >=14.0.6",
"numpy",
"pybind11-abi 4",
"python >=3.10,<3.11.0a0",
"python_abi 3.10.* *_cp310",
"spdlog >=1.11.0,<1.12.0a0",
"tbb >=2021.8.0",
"xtensor",
"xtensor-blas"
],
"license": "MPL-2.0",
"name": "cascade",
"platform": "osx",
"subdir": "osx-64",
"timestamp": 1677367283346,
"version": "0.1.1"
}
Probably those builds of cascade
have been done against xtensor==0.24.5
.
I think xtensor
should be reported in this case, as it is the case with:
micromamba repoquery whoneeds xtensor -c conda-forge --platform osx-64 | grep cascade
cascade 0.1.1 py38h5ce3968_0 xtensor conda-forge conda-forge
cascade 0.1.1 py310ha6c322b_0 xtensor conda-forge conda-forge
cascade 0.1.1 py39hb1d9d96_0 xtensor conda-forge conda-forge
What do you think?